Methode 'JLayoutFile::getDefaultIncludePaths()' not found, suite à maj vers J! 3.9.4

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [Problème] Methode 'JLayoutFile::getDefaultIncludePaths()' not found, suite à maj vers J! 3.9.4

    Bonjour,

    Après la mise à jour de joomla, de la version 3.1.x à la version 3.9.4, lors de l'affichage du formulaire contact et du formulaire connexion, le message d'erreur suivant s'affiche:

    Erreur 0
    Call to undefined method JLayoutFile::getDefaultIncludePaths()


    qqn peux m'aider stp, merci d'avance.

    Au plaisir de vous relire

  • #2
    Bizarre, un problème lors de la mise à jour ?
    As-tu bien le fichier /librairies/src/Layout/FileLayout.php ?
    Dans ce fichier à la ligne 573 tu dois avoir la fonction :
    Code PHP:
    public function getDefaultIncludePaths() 
    Ou alors un problème de template.
    Quel template utilises-tu ?
    Regarde s'il n'y a pas une mise à jour à faire de ce côté (template ou framework de template).
    A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
    Rejoignez le Joomla Users Groupe Alsace...
    roland_d_alsace va-t-il devenir roland_du_grand_est ?

    Commentaire


    • #3
      Merci Roland par ta réponse

      Du côté code PHP tout est OK aussi bien le fichier que la fonction.
      Ma template est JA Teline V et Il n'y a actuellement aucune mise à jour disponible. Veuillez réessayer plus tard.

      le problème est toujours là...


      Commentaire


      • #4
        Ton template fait probablement des overrides des vues qui posent problème.
        Si oui désactive les (renomme dans ton template les dossiers correspondants avec un nom qui ne posera pas problème (rajout .sav) par exemple, pour que joomla utilise ses templates de vues natifs.
        Puis fais l'essai.

        Dernière édition par roland_d_alsace à 04/04/2019, 09h48
        A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
        Rejoignez le Joomla Users Groupe Alsace...
        roland_d_alsace va-t-il devenir roland_du_grand_est ?

        Commentaire


        • #5
          As-tu vérifié la version du template ? Il a été mis à jour très récemment en 1.1.7 si j'ai bien vu.
          "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
          MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

          Commentaire


          • #6
            En complément de ma réponse ci-dessus.

            Je pense que le problème vient du fait que tes overrides font des appels "statiques" à une méthode de JLayoutFile, ceci combiné avec la mise en place des namespaces depuis quelques versions de joomla.
            (alors que JlayoutFile n'est jamais utilisé en temps que classe statique mais est instanciée).

            Essaie la méthode que je t'indique dans la réponse précédente.

            Si cela fonctionne mais si l'affichage ne te convient pas, essaie de placer :
            Code PHP:
            JLoader::register('JLayoutFile'JPATH_SITE '/librairies/src/Layout/FileLayout.php'); 
            au début de tes overrides de vue, après le
            Code PHP:
            defined('_JEXEC') or die; 
            et l'empilage de
            Code PHP:
            use... 
            (s'il y en a)

            Mais dans tous les cas je reste convaincu que c'est ton template qui n'est pas compatible avec les versions recentes de Joomla
            Dernière édition par roland_d_alsace à 04/04/2019, 09h52
            A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
            Rejoignez le Joomla Users Groupe Alsace...
            roland_d_alsace va-t-il devenir roland_du_grand_est ?

            Commentaire


            • #7
              Un template Joomlart mis à jour il y a quelques jours ne serait pas compatible avec la version actuelle ? J'ai quand même des doutes.
              JA Teline V is the best Joomla template for Magazine and News site with creative and modern design with multiple views supports: news, media, video, gallery
              "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
              MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

              Commentaire


              • #8
                Ou alors il y a des overrides perso ?
                A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
                Rejoignez le Joomla Users Groupe Alsace...
                roland_d_alsace va-t-il devenir roland_du_grand_est ?

                Commentaire


                • #9
                  Bonjour Roland,

                  Je ne suis pas sûr de t'avoir bien compris, tes indications en ce qui concernent les overrides:
                  1. Overrides perso impossible car je n'ai pas developpé dans le site
                  2. Ci-dessou, le code de la function getDefaultIncludePaths(), j'ai mis en commentaire les deux lignes ci-dessous
                  // (2) Component template overrides path
                  //$paths[] = JPATH_THEMES . '/' . \JFactory::getApplication()->getTemplate() . '/html/layouts/' . $component;
                  // (4) Standard Joomla! layouts overriden
                  //$paths[] = JPATH_THEMES . '/' . \JFactory::getApplication()->getTemplate() . '/html/layouts';

                  Malgré cela le bug est toujours là. C'étais bien cela qu'il fallait faire ?


                  Merci d'avance.


                  public function getDefaultIncludePaths()
                  {
                  // Reset includePaths
                  $paths = array();

                  // (1 - highest priority) Received a custom high priority path
                  if ($this->basePath !== null)
                  {
                  $paths[] = rtrim($this->basePath, DIRECTORY_SEPARATOR);
                  }

                  // Component layouts & overrides if exist
                  $component = $this->options->get('component', null);

                  if (!empty($component))
                  {
                  // (2) Component template overrides path
                  $paths[] = JPATH_THEMES . '/' . \JFactory::getApplication()->getTemplate() . '/html/layouts/' . $component;

                  // (3) Component path
                  if ($this->options->get('client') == 0)
                  {
                  $paths[] = JPATH_SITE . '/components/' . $component . '/layouts';
                  }
                  else
                  {
                  $paths[] = JPATH_ADMINISTRATOR . '/components/' . $component . '/layouts';
                  }
                  }

                  // (4) Standard Joomla! layouts overriden
                  //$paths[] = JPATH_THEMES . '/' . \JFactory::getApplication()->getTemplate() . '/html/layouts';

                  // (5 - lower priority) Frontend base layouts
                  $paths[] = JPATH_ROOT . '/layouts';

                  return $paths;
                  }

                  Commentaire


                  • #10
                    Oups....
                    ....on ne touche surtout pas pas au core de Joomla.

                    Moi je parlais du code des overrides de vues faite dans le template, des fois que l'auteur n'assurait pas la maintenance.

                    Mais comme te l'a bien dit Robert, applique bien la mise à jour de Joomlart avant toutes choses.
                    A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
                    Rejoignez le Joomla Users Groupe Alsace...
                    roland_d_alsace va-t-il devenir roland_du_grand_est ?

                    Commentaire


                    • #11
                      merci
                      j'ai remis le code du Joomla à son état initial
                      par contre où est-ce que je peux trouver le code des overrides de vues faite dans le template ???



                      Commentaire


                      • #12
                        Envoyé par thewolf Voir le message
                        merci
                        j'ai remis le code du Joomla à son état initial
                        par contre où est-ce que je peux trouver le code des overrides de vues faite dans le template ???


                        Dans /templates/nomdutemplate/html/

                        Avec la règle de nommage suivante :
                        /templates/nomdutemplate/html/com_nomducomposant/nomdelavue/nomdutemplatedevue.php
                        Dernière édition par roland_d_alsace à 08/04/2019, 18h58
                        A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
                        Rejoignez le Joomla Users Groupe Alsace...
                        roland_d_alsace va-t-il devenir roland_du_grand_est ?

                        Commentaire


                        • #13
                          impossible de trouver...
                          j'ai trouvé quelque chose de similaire dans le repertotire components/...

                          Commentaire

                          Annonce

                          Réduire
                          Aucune annonce pour le moment.

                          Partenaire de l'association

                          Réduire

                          Hébergeur Web PlanetHoster
                          Travaille ...
                          X